A representational state transfer (REST) object is an object having one or more attributes. An attribute is a name and value pair. The value may be a simple structure attribute, such as, a string, number, Boolean value, or null. For example, a simple structure attribute may include the attribute name “id” and the simple string value “pool_6”. However, a value of a complex structure attribute may be a nested array or a nested object. An array is an ordered collection of values. An object is an unordered set of name and value pairs. A nested array may include another nested array and/or a nested object as a sub-attribute of the nested array. Likewise, a nested object may itself include another nested object or a nested array as a sub-attribute of the nested object. In other words, nested objects and nested arrays are attributes that include one or more other attributes embedded within them.
Simple structure attributes are easily mapped into a flat data file, such as a comma separated value (CSV) file. However, mapping components frequently are unable to handle complex structure attributes. In such cases, the arrays and nested objects are simply ignored, resulting in lost data and inaccurate results. In other cases, array attributes are handled by expanding the values in the array to several rows and copying the values of other attributes into the new rows as well. This approach results in CSV files that rapidly grow in size when the array length is larger or the object has many other attributes. The extremely large file sizes which result are unmanageable and impractical. Moreover, scalability is poor in cases involving more than one attribute of array type in the object. The nested hierarchy typically makes it impractical or impossible to accurately map complex structure attributes in a flatten manner without data loss, data corruption, or unmanageably large data files.